package org.cy.websocket.stomp;

/**
 * Created in 2021-05-09 15:35
 *
 * @author cao.yong
 */
public enum StompCommand {
    /**
     * 连接
     */
    CONNECT(true),
    /**
     * 已连接
     */
    CONNECTED(true),
    /**
     * 断开
     */
    DISCONNECT,
    /**
     * 订阅
     */
    SUBSCRIBE(true),
    /**
     * 取消订阅
     */
    UNSUBSCRIBE(true),
    /**
     * 发送
     */
    SEND(true),
    /**
     * 应答
     */
    ACK,
    /**
     * 不应答
     */
    NACK,
    /**
     * 事务开始
     */
    BEGIN,
    /**
     * 事务提交
     */
    COMMIT,
    /**
     * 事务终止
     */
    ABORT,
    /**
     * 消息
     */
    MESSAGE(true),
    /**
     * 收据
     */
    RECEIPT,
    /**
     * 心跳
     */
    HEARTBEAT,
    /**
     * 主动断开连接是会返回该命令
     */
    ERROR,
    /**
     * 未知
     */
    UNKNOWN;

    private final boolean allowBody;

    StompCommand() {
        this(false);
    }

    StompCommand(boolean allowBody) {
        this.allowBody = allowBody;
    }

    public boolean isAllowBody() {
        return allowBody;
    }
}
